<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>

<body>
    <div id="app"></div>
</body>
<script>
    // 生命周期函数   在某一时刻会自动执行的函数
    const app = Vue.createApp({//application 创建一个Vue应用
        data() {
            return {
                message:'hello world!'
            }
        },
        methods: {
            handleitemclick(){
                this.message = this.message=='hello world!'?'你好世界':'hello world!'
            }
        },
        beforeCreate() {//在实例生成之前会自动执行的函数
            console.log('beforeCreate')
        },
        created() {//在实例生成之后会自动执行的函数
            console.log('created')
        },
        beforeMount() {//在模板渲染完成之前执行的函数
            console.log("beforeMount")
        },
        mounted() {//在模板渲染完成之后执行的函数
            console.log("mounted")
        },
        beforeUpdate() {//当data数据变化时，立即执行的函数
            console.log("beforeUpdate")
            console.log(document.getElementById('app').innerHTML)
        },
        updated() {//当data数据变化时，页面重新渲染完成后，会自动执行的函数
            console.log("updated")
            console.log(document.getElementById('app').innerHTML)
        },
        // 控制台执行app.unmount()可以看到效果
        beforeUnmount() {//当Vue应用失效时，会自动执行的函数
            console.log("beforeUnmount")
            console.log(document.getElementById('app').innerHTML)
        },
        unmounted() {//当Vue应用失效时，且DOM完全销毁之后，会自动执行的函数
            console.log("unmounted")
            console.log(document.getElementById('app').innerHTML)
        },
        template: `<h2 @click="handleitemclick">{{message}}</h2>`

    })
    const vm = app.mount("#app")//挂载这个Vue应用
</script>

</html>